﻿using System;
using System.Collections.Generic;

using System.Windows.Forms;
using System.Text;
using System.Collections;

namespace INSAForManagers
{
    class Config
    {
        //사용자 등록 상태
        public const byte STATE_OK = 1;

        //사용자 미등록 상태
        public const byte STATE_INIT = 0;

        //로그인 취소
        public const byte STATE_EXIT = 2;

        /**********************************
         * 업무 Flow 정의
         **********************************/
        public const int FLOW_TARGET_REGIST     = 1;    //다면평가대상자 등록
        public const int FLOW_TARGET_OUTPUT     = 2;    //다면평가대상자 내보내기
        public const int FLOW_MULTI_GATHER      = 11;   //다면평가표 수합
        public const int FLOW_MULTI_ELEMENT     = 12;   //다면평가 요소별 점수 계산
        public const int FLOW_MULTI_SUM         = 13;   //다면평가 합산
        public const int FLOW_WORK_EVALUE       = 21;   //평정자: 근무성적평정
        public const int FLOW_WORK_EVALUE2      = 22;   //확인자: 근무성적평정
        public const int FLOW_WORK_CALC         = 23;   //계산
        public const int FLOW_WORK_SUM          = 24;   //합산표

        //엑셀 비밀번호
        public static string xls_password = "dge201112";

        //프로그램 버전
        private static string version;

        public static string Version
        {
            get { return Config.version; }
            set { Config.version = value; }
        }

        //어플리케이션 경로
        private static string path = "";

        public static string Path
        {
            get { return Config.path; }
            set { Config.path = value; }
        }

        //프로그램 상태
        //초기 상태:0
        //다면평가자 정보를 입력한 상태:1
        private static byte state;

        public static byte State
        {
            get { return Config.state; }
            set { Config.state = value; }
        }
        
        //업무 플로우
        private static int _workflow;

        public static int Workflow
        {
            get { return Config._workflow; }
            set { Config._workflow = value; }
        }

        //대상자 인원
        private static int numOfTagets;

        public static int NumOfTagets
        {
            get { return Config.numOfTagets; }
            set { Config.numOfTagets = value; }
        }

        //관리자 유형
        private static string userType;

        public static string UserType
        {
            get { return Config.userType; }
            set { Config.userType = value; }
        }

        //다면평가자
        private static ArrayList valuerList;

        public static ArrayList ValuerList
        {
            get { return Config.valuerList; }
            set { Config.valuerList = value; }
        }


        //평가기간
        private static DateTime sDate;

        public static DateTime SDate
        {
            get { return Config.sDate; }
            set { Config.sDate = value; }
        }

        private static DateTime eDate;

        public static DateTime EDate
        {
            get { return Config.eDate; }
            set { Config.eDate = value; }
        }
        

        //처리 중인 파일 목록
        private static string[] fileNames;

        public static string[] FileNames
        {
            get { return Config.fileNames; }
            set { Config.fileNames = value; }
        }

        //메인 폼 객체
        private static Form mainForm;

        public static Form MainForm
        {
            get { return Config.mainForm; }
            set { Config.mainForm = value; }
        }

       //이벤트 발생 여부
        private static bool enabledListViewEvent;

        public static bool EnabledListViewEvent
        {
            get { return Config.enabledListViewEvent; }
            set { Config.enabledListViewEvent = value; }
        }


        //관리자 정보
        private static ModelValuerInfo mvi = new ModelValuerInfo();

        public static ModelValuerInfo Mvi
        {
            get { return Config.mvi; }
            set { Config.mvi = value; }
        }

        public static void setMvi() {

            //사용자정보 불러오기
            ArrayList data = DBUtil.getValuerInfo();

            if (data != null)
            {
                //인식키
                Config.Mvi.Inx = (int)data[0];
                //평정자1
                Config.Mvi.Evaluer1 = (string)data[1];
                //평정자2
                Config.Mvi.Evaluer2 = (string)data[2];
                //확인자
                Config.Mvi.Confirmer = (string)data[3];
                //교명
                Config.Mvi.Organ = (string)data[4];
                //비밀번호
                Config.Mvi.Passwd = (string)data[5];
                //시작일자
                Config.Mvi.SDate = (DateTime)data[6];
                //종료일자
                Config.Mvi.EDate = (DateTime)data[7];
                //등록일시
                Config.Mvi.Regtime = (DateTime)data[8];
            }

        }

        public static string[] xlsColumn = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z" };
        
    }
}
